package leetcode.Hot100;

/**
 * @author Cheng Jun
 * Description: 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
 * <p>
 * 给你两个整数 x 和 y，计算并返回它们之间的汉明距离。
 * https://leetcode-cn.com/problems/hamming-distance/
 * @version 1.0
 * @date 2021/11/14 16:40
 */
public class hammingDistance {
    public static void main(String[] args) {

    }

    // 异或的结果的每一位和1做与运算，然后左移一位
    static int hammingDistance(int x, int y) {
        // Integer.bitCount(x ^ y);
        x ^= y;
        int res = 0;
        while (x != 0) {
            res += x & 1;
            x >>= 1;
        }
        return res;

    }
}
